﻿using CleanArchitecture.Infrastructure.Models;
using CleanArchitecture.Infrastructure.Models.AdminUsers;
using System.Collections.Generic;

namespace CleanArchitecture.Web.Factories
{
    /// <summary>
    /// Represents the interface of the customer model factory
    /// </summary>
    public partial interface IAdminUserModelFactory
    {
        /// <summary>
        /// Prepare the login model
        /// </summary>
        /// <returns>Login model</returns>
        LoginModel PrepareLoginModel();

        IList<NaviMenuNode> PrepareMenuTrees();

        AdminUserModel PrepareAdminUser(int userId = 0);
        AdminUserModel PrepareNewRegistedAdminUser();

        //IList<AdminRoleModel> PrepareAdminRoleModels();
        AdminRoleModel PrepareAdminRoleModel(int roleId);
        
        AdminUserListModel PrepareAdminUserListModel(AdminUserSearchModel searchModel);
    }
}
